Permitir CORS

Descripcion

Como permitir que se puedan hacer solicitudes CORS a nuestra aplicacion spring

Solucion

Dependencias

Pimero tenemos que indicar la siguiente dependencia en el archivo pom.xml:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
</dependency>
Metodo

Para permitir el acceso cruzado podemos hacerlo de dos maneras:

A nivel de controlador

En este caso tenemos que poner la etiqueta @CrossOrigin antes del metodo del controlador, por ejemplo:

@CrossOrigin(origins = "http://127.0.0.1:4200")

Si tenemos varios endpoints tendremos que indicar la etiqueta en cada uno de ellos

NOTA: si vamos a usar la direccion local (localhost o 127.0.0.1), la que pongamos en la etiqueta es la que tendremos que usar para conectarnos, si no fallará si ponemos una y usamos la otra

A nivel global

Otra manera de hacerlo es añadiendo el siguiente bean en el archivo principal de la palicacion, despues de la clase main

@Bean
public WebMvcConfigurer corsConfigurer() {
	return new WebMvcConfigurer() {
		@Override
		public void addCorsMappings(CorsRegistry registry) {
			registry.addMapping("/api/members").allowedOrigins("http://127.0.0.1:4200");
		}
	};
}

En este caso tenemos que indicar la ruta completa del endpoint (/api/members en este caso)

Tags

Spring | CORS